$(function() {
	AccountTable();
	
});

var AccountTable = function() {
	layui
			.use(
					[ 'laydate', 'laypage', 'layer', 'table', 'element','upload'],
					function() {
						var laydate = layui.laydate // 日期
						, laypage = layui.laypage // 分页
						, layer = layui.layer // 弹层
						, table = layui.table // 表格
						, element = layui.element // 元素操作
						var form = layui.form;
						var $ = layui.jquery;
						var upload = layui.upload;
						// 执行一个 table 实例
						var accountTable = table.render({
							elem : '#AccountTable',
							url : 'account' // 数据接口
							,
							title : '现金账号',
							page : true // 开启分页
							,
							limits : [ 5, 10, 15 ],
							toolbar : 'default' // 开启工具栏，此处显示默认图标，可以自定义模板，详见文档
							,
							cols : [ [ // 表头
							{
								type : 'checkbox',
								fixed : 'left'
							}, {
								field : 'accountId',
								title : 'ID',
							}, {
								field : 'accountNO',
								title : '账户编号'
							},{
								field : 'accountName',
								title : '账户名'
							},{
								field : 'bankName',
								title : '开户银行名称',
							}, {
								field : 'accountType',
								title : '账户类型',
							}, {
								field : 'CardRates',
								title : '卡号利率',
							}, {
								field : 'valueDate',
								title : '计息期间'
							}, {
								field : 'openTime',
								title : '开户时间'
							}, {
								field : 'endTime',
								title : '结束时间'
							} ] ]
						});
						
						// 监听头工具栏事件
						table
								.on(
										'toolbar(AccountTable)',
										function(obj) {
											var checkStatus = table
													.checkStatus(obj.config.id), data = checkStatus.data; // 获取选中的数据
											switch (obj.event) {
											case 'add':
												// 弹出新增模态框
												initAddAccountModal();
												break;
											case 'update':
												if (data.length === 0) {
													layer.msg('请选择一行');
												} else if (data.length > 1) {
													layer.msg('只能同时编辑一个');
												} else {
													initUpdateAccountModal(data);
												}
												break;
											case 'delete':
												if (data.length === 0) {
													layer.msg('请选择一行');
												} else {
													// 调用删除方法
													deleteAccount(data);
												}
												break;
											}
											;
										});

						// 监听行工具事件
						table.on('tool(AccountTable)', function(obj) { // 注：tool
							// 是工具条事件名，test
							// 是
							// table
							// 原始容器的属性
							// lay-filter="对应的值"
							var data = obj.data // 获得当前行数据
							, layEvent = obj.event; // 获得 lay-event 对应的值
							if (layEvent === 'detail') {
								layer.msg('查看操作');
							} else if (layEvent === 'del') {
								layer.confirm('真的删除行么', function(index) {
									obj.del(); // 删除对应行（tr）的DOM结构
									layer.close(index);
									// 向服务端发送删除指令
								});
							} else if (layEvent === 'edit') {
								layer.msg('编辑操作');
							}
						});

						// 初始化新增模态框
						var initAddAccountModal = function() {
							// 弹出一个页面层
							layer.open({
								type : 1 // 基本层类型0~4，1为页面层
								,
								title : '添加资源' // 标题
								,
								area : [ '400px', '550px' ] // 宽高
								// 只写一个参数就是表示宽度，高度会自适应
								,
								content : $("#addAccountModal") // 文本、html都行
								,
								anim : 0 // 弹出动画
								,
								resize : false // 是否允许拉伸
								,
								end : function() { // 弹出层销毁时的回调函数（不论何种方式，只要关闭了就执行）
									// 清空表单
									$("#addAccountForm")[0].reset();
								}
							});

						}

						// 初始化修改模态框
						var initUpdateAccountModal = function(data) {
							data = data[0];
							// 弹出一个页面层
							layer.open({
								type : 1 // 基本层类型0~4，1为页面层
								,
								title : '修改资源' // 标题
								,
								area : [ '400px', '550px' ] // 宽高
								// 只写一个参数就是表示宽度，高度会自适应
								,
								content : $("#updateAccountModal") // 文本、html都行
								,
								anim : 0 // 弹出动画
								,
								resize : false // 是否允许拉伸
								,
								end : function() { // 弹出层销毁时的回调函数（不论何种方式，只要关闭了就执行）
									// 清空表单
									$("#updateAccountForm")[0].reset();
								}
							});
							// 表单赋值
							form.val('updateAccountForm', {
								"accountId" : data.accountId,
								"accountNO" : data.accountNO,
								"accountName" : data.accountName,
								"bankName" : data.bankName,
								"accountType" : data.accountType,
								"CardRates" : data.CardRates,
								"valueDate" : data.valueDate,
								"openTime" : data.openTime,
								"endTime" : data.endTime
							});
						}

						var deleteAccount = function(data) {
							var accountIds = "";
							for (var i = 0; i < data.length; i++) {
								accountIds += data[i].accountId + ",";
							}
							$.ajax({
								type : "POST",
								url : 'account/' + accountIds,
								data : {
									_method : 'DELETE',
								},
								success : function(data) {
									if (data == true) {
										layer.confirm('删除成功');
									} else {
										layer.confirm('删除失败');
									}
									// 刷新数据表格
									table.reload('AccountTable', {
										url : 'account'
									});
								}
							})
						}

						// 关闭模态框
						$(".modalClose").click(function() {
							// 关闭页面上所有类型的所有弹框
							layer.closeAll();
						});

						// 搜索框
						form.on('submit(accountSearchBtn)', function(data) {
							var data = data.field;
							console.log(data)
							// 执行后台代码
							accountTable.reload({
								where : { // 设定异步数据接口的额外参数，任意设
									"accountId" : data.accountId,
									"accountNO" : data.accountNO,
									"accountName" : data.accountName,
									"bankName" : data.bankName,
									"accountType" : data.accountType,
									"CardRates" : data.CardRates,
									"openTime" : data.openTime,
									"endTime" : data.endTime
								},
								page : {
									curr : 1
								// 重新从第 1 页开始
								}
								
							});	  
							// 刷新数据表格
							// table.reload('resourceTable', {url:
							// 'sys/resources'});
							return false; // 阻止表单跳转。如果需要表单跳转，去掉这段即可。
						});
						
						laydate.render({
						    elem: '#openTime'
						  });
						laydate.render({
						    elem: '#endTime'
						  });
						laydate.render({
						    elem: '#openTime1'
						  });
						laydate.render({
						    elem: '#endTime1'
						  });
						laydate.render({
						    elem: '#openTime2'
						  });
						laydate.render({
						    elem: '#endTime2'
						  });
						
						//添加
						var addAccount = function() {
							// 获取表单中填写的数据
							var addAccountFormData = $("#addAccountForm").serialize();
							$.ajax({
								type : "POST",
								url : 'accounts',
								data : addAccountFormData,
								success : function(data) {
									if (data == true) {
										// 刷新数据表格
										layer.closeAll();
										layer.confirm('添加成功');
									} else {
										layer.confirm('添加失败');
									}
									// 刷新数据表格
									table.reload('AccountTable', {
										url : 'account'
									});
								}
							});
							return false;
						}
						// 修改
						var updateAccount = function() {
							// 获取表单中填写的数据
							var updateAccountFormData = $("#updateAccountForm").serialize();
							$.ajax({
								type : "POST",
								url : 'account',
								data : updateAccountFormData,
								success : function(data) {
									if (data == true) {
										// 刷新数据表格
										layer.closeAll();
										layer.confirm('修改成功');
									} else {
										layer.confirm('修改失败');
									}
									// 刷新数据表格
									table.reload('AccountTable', {
										url : 'account'
									});
								}
							});
							return false;
						}
						
						
						// 为添加按钮绑定事件
						$("#addAccount").click(addAccount);
						$("#updateAccountBtn").click(updateAccount);
					});
					
}
